Jeg oplever noget mærkeligt ved $row['navn']

Tags:    databaser

Hej

Jeg plejer at bruge $row['navn'] og ikke $row[2], men jeg oplever på en database ikke at kunne bruge navnet men kun placeringen... altså $row['navn'] giver ingenting.. men $row[2] gør!

hvordan kan det være?



Hey Jonny,
er du sikker på at du skriver det rigtige navn? :)
Husk det er case-sensitive :)



hvad bruger du til at hente din query, altså mysql_fetch_....($Query);..?



Jep.. 100%



Jeg benytter i et af tilfældene denne:

$result = mysql_query("SELECT * FROM geoInfo LEFT JOIN Butikker ON geoInfo.shopID = Butikker.ID ORDER BY geoInfo.shopID desc LIMIT 0, 10");

det fungerer fint, med $row[2] og $row[3] ... men ikke med navnene!



Hvis du bruger: mysql_fetch_row, kan jeg se hvad der er galt, så skal du bruge mysql_fetch_assoc istedet, ellers ved jeg ikke lige hvad der er galt, for kan ikke lige kringle det der LEFT JOIN i din query. Men kunne det ikke være det der forårsager fejlen... Prøv af skrive: print_r($result); så kan du få at se hvad dit array $result indeholder, det kan måske hjælpe dig :D

UPDATE: Okay efter at have læst om JOIN, kan det så ikke være fordi feltet navn ligger i tabellen Butikker, så den bare retunerer NULL for det felt..?



Indlæg senest redigeret d. 05.01.2008 13:01 af Bruger #8845
OK... altså shitet virker jo.. jeg kan bare ikke bruge navnet..

denne benytter jeg et andet sted til samme db:

$result = mysql_query("select * from Butikker where Brands like \\"%$vare%\\" ORDER BY Shopname");

den fungerer også fint med ex. $row[1] men ikke med $row['navn']..

hvis jeg laver en print_r($result) får jeg: Resource id #4



JO jo... altså $row['navn'] er bare synonym for at jeg vil benytte rækkens navn.. det er selvfølgelig ikke det jeg benytter.



prøv at sige:

Fold kodeboks ind/udKode 


Så burde du kunne se hvilke felter du kan benytte.

Hvis problemmet er at du kun kan få din information ved at bruge $row[>ET TAL<] og ikke $row[>FELTES NAVN<] kan det være fordi du bruger mysql_fetch_row og ikke mysql_fetch_assoc eller mysql_fetch_array, hvor du hendholdsvis kan bruge tal, feltnavnet, og til sidst tal og feltnavn.



Indlæg senest redigeret d. 05.01.2008 13:55 af Bruger #8845
Hep
det er lige præcis det der er mit problem..

$row = mysql_fetch_assoc($result) i stedet for $row = mysql_fetch_row($result) løser faktisk problemet, SUPER COOL!

Tak for hjælpen!



Det fordi:

mysql_fetch_row: Giver talværier
mysql_fetch_assoc: Giver feltnavne
mysql_fetch_array: Giver både talværdier og feltnavne

Og det var så lidt :D



t